<?php

define('HOME_PATH','/blog_system/admin/');
define('HOME_CSS','/blog_system/admin/view/css/');
define('HOME_JS','/blog_system/admin/view/js/');
define('HOME_IMG','/blog_system/admin/view/images/');

//设置默认控制
$defaultController = 'Login';

//设置默认动作
$defaultAction = 'getLogin';

//开启 SESSION
session_start();

//注册加载器
spl_autoload_register('autoLoad');

//自动类加载器
function autoLoad($className){

    $className = str_replace('\\','/',$className);
    $filePath = $_SERVER['DOCUMENT_ROOT'].'/blog_system/'.$className.'.php';
    if(file_exists($filePath) && is_file($filePath)){
        include $filePath;
    } else {
        echo 'file : ' .$filePath.' is not exists';
        exit();
    }
}

//判断地址是否正确
if($_SERVER['SCRIPT_NAME'] !== HOME_PATH.'index.php'){
    echo('error');
    exit();
}
//获取访问参数
$pathInfo = trim($_SERVER['PATH_INFO'],'/');    //去除多余空格
$pathArr = explode('/',$pathInfo);  //拆分
$pathLen = count($pathArr); //计算数量
//判断数量是否成对出现
if($pathLen>1 && $pathLen % 2 != 0){
    echo '404';
    exit();
}
//获取控制器，没有控制器调用默认控制器
if($pathArr[0] ==='' || $pathArr[0] === null){
    $controller = $defaultController.'Controller';
}else{
    $controller = $pathArr[0].'Controller';
}
//获取动作，没有动作使用默认动作
if($pathArr[1] ==='' || $pathArr[1] === null){
    $method = $defaultAction;
}else{
    $method = $pathArr[1];
}

if($controller != 'LoginController'){
    //判断是否登陆
    if(!($_SESSION['m_id'])){
        header('location:/blog_system/admin/view/error.php');
        exit();
    }
}

$params = [];
if($pathLen > 2){
    $index = 2;     //从第三个开始计数
    while(true){            //获取所有参数，并赋值给params数组
        $key = $pathArr[$index++];
        $value = $pathArr[$index++];
        $params[$key] = $value;
        if($index >= $pathLen){ 
            break;
        }
    }
}
//检查请求中是否有遗漏数据，如果有数据就合并 params 参数中
if(!empty($_REQUEST)){
    $params = array_merge($params, $_REQUEST);
}

$className = 'admin\\controller\\'.$controller;
$obj = new $className;
//调用方法
echo $obj->$method($params);


